package com.hspedu.abstract_;

/**
 * @Author Stringzhua
 * @Date 2024/3/5 21:48
 * description:
 * 编写一个抽象类,
 */
public class AbstractExercise01 {
    public static void main(String[] args) {
        Manager jack = new Manager("jack", 999, 50000);
        jack.setBonus(8000);
        jack.work();

        CommonEmployee tom = new CommonEmployee("tom", 888, 20000);
        tom.work();
    }
}

//abstract final class A{}
//编译不通过,因为抽象类不能由final修饰,而且后面不能加{}
abstract class Q {
//    abstract public static void test2();
    //编译不通过,abstract不能由static修饰,static关键字和方法重写无关
//    abstract private void test3();
    //编译不通过,abstract不能由private修饰,private的方法不能重写
}


/*
 * 编写一个Employee类,声明为抽象类,包含如下三个属性:
 * name,id,salary
 * 提供必要的构造器和抽象方法:work()
 * 对于Manager来讲,它既是员工,还具有bonus的属性
 *
 * 请使用继承的思想,设计CommonEmployee类和Manager类
 * 要求类中提供必要的方法进行属性访问,实现work()
 *
 * 提示:“经理/普通员工 名字 工作中”
 * OOP的继承+抽象类
 * */
